<?php

use MultiWorker\Logger\Logger;
use MultiWorker\Logger\LoggerLevel;

require __DIR__ . DIRECTORY_SEPARATOR . 'bootstrap.php';

$logger = Logger::new([
    // 使用的日志通道 支持格外扩展[file,console]
    'channel'        => 'console',
    // 日志记录格式
    'format'         => '[:time][:level]:message:context',
    // 日志时间格式
    'time_format'    => 'Y-m-d H:i:s',
    // context format
    'context_format' => function ($context) {
        return json_encode($context,JSON_UNESCAPED_UNICODE);
        // return var_export($context,true);
    },
    // 只记录或输出的级别 []表示都不记录 true 表示全记录 默认为true
    'apart_level'    => [LoggerLevel::ERROR],
    // 以下参数只在channel:file 有效
    'file' => [
        // 也可以在子参数中指定
        'apart_level'     => true,
        // 日志存储路径
        'path'           => __DIR__ . DIRECTORY_SEPARATOR . 'runtime',
        // 日志文件名称(支持闭包)
        'filename'       => function () {
            return date('d');
        },
        // 日志文件大小限制(KB) -1不限制
        'file_size'      => 1024 * 2
    ],
    'console' => [
         // 也可以在子参数中指定
        'apart_level'     => true,
    ]
]);
$logger->debug('这是一条debug信息',['test' => '额外的数据']);
$logger->info('这是一条info信息');
$logger->warning('这是一条warning信息');
$logger->error('这是一条error信息');
$logger->critical('这是一条critical信息');
$logger->alert('这是一条alert信息');
$logger->emergency('这是一条emergency信息');